home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cpp_libs
/
answrbok
/
8_5.lha
/
8_5
/
freopen.c
< prev
next >
Wrap
Text File
|
1993-08-08
|
782b
|
37 lines
* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */
* The C++ Answer Book */
* Tony Hansen */
* All rights reserved. */
/ Open a named file on a stdio
/ stream which is already active.
ILE *freopen(const char *file,
const char *fmode, FILE *f)
open_mode svmode = f->mode;
// set the modes up
open_mode m = (*fmode == 'w') ? output :
(*fmode == 'a') ? append :
input;
// close the old stream
if (svmode == input) delete f->in;
else delete f->out;
delete f->sb;
// open the file
delete f->sb;
filebuf *nsb = new filebuf;
nsb->open((char*)file, m);
f->sb = nsb;
// create the appropriate new stream
if (f->mode == input)
f->in = new istream(f->sb);
else
f->out = new ostream(f->sb);
return f;